SOAP (Simple Object Access Protocol) হল একটি প্রোটোকল যা XML বার্তা পাঠানোর মাধ্যমে ওয়েব সার্ভিসের মধ্যে যোগাযোগ করতে ব্যবহৃত হয়। Apache CXF দিয়ে SOAP ওয়েব সার্ভিস তৈরি করার জন্য, JAX-WS (Java API for XML Web Services) ব্যবহার করা হয়। এখানে একটি SOAP ওয়েব সার্ভিস তৈরি করার জন্য প্রয়োজনীয় পদক্ষেপগুলো আলোচনা করা হলো।
প্রথমে আপনাকে Maven প্রজেক্ট তৈরি করতে হবে, যেটি Apache CXF এবং JAX-WS এর উপর নির্ভরশীল। উপরের মাভেন কনফিগারেশন এবং ডিপেনডেন্সি সেটআপ অনুযায়ী pom.xml
ফাইল কনফিগার করুন।
Apache CXF দিয়ে SOAP ওয়েব সার্ভিস তৈরি করতে প্রথমে একটি ওয়েব সার্ভিস ক্লাস তৈরি করতে হবে। এই ক্লাসে ওয়েব সার্ভিসের মেথড এবং তাদের কনফিগারেশন থাকবে। সাধারণত JAX-WS এর মাধ্যমে এই ক্লাসগুলো তৈরি করা হয়।
HelloWorldService.java
ক্লাস তৈরি করাpackage com.example.cxf;
import javax.jws.WebMethod;
import javax.jws.WebService;
@WebService
public class HelloWorldService {
@WebMethod
public String sayHello(String name) {
return "Hello, " + name + "!";
}
}
এই ক্লাসে:
@WebService
অ্যানোটেশন দিয়ে ওয়েব সার্ভিস চিহ্নিত করা হয়েছে।sayHello()
মেথডটি একটি সিম্পল ওয়েব সার্ভিস মেথড, যা ইউজারের নাম নেয় এবং একটি স্বাগতম বার্তা রিটার্ন করে।ওয়েব সার্ভিসটি Apache CXF এর মাধ্যমে হোস্ট করার জন্য একটি সার্ভার ক্লাস তৈরি করুন। এটি ওয়েব সার্ভিসের URL এবং সার্ভিস ক্লাসের মধ্যে সম্পর্ক স্থাপন করবে।
package com.example.cxf;
import org.apache.cxf.jaxws.JaxWsServerFactoryBean;
public class Server {
public static void main(String[] args) {
// ওয়েব সার্ভিসের ফ্যাক্টরি তৈরি
JaxWsServerFactoryBean factory = new JaxWsServerFactoryBean();
// ওয়েব সার্ভিস ক্লাস এবং URL সেট করা
factory.setServiceClass(HelloWorldService.class);
factory.setAddress("http://localhost:9000/hello");
// ওয়েব সার্ভিস চালু করা
factory.create();
System.out.println("Server started at http://localhost:9000/hello");
}
}
এখানে:
JaxWsServerFactoryBean
ক্লাসটি Apache CXF এর সার্ভার তৈরি করতে ব্যবহার হয়।setAddress()
মেথডে ওয়েব সার্ভিসের URL নির্ধারণ করা হয়েছে।এখন, আপনি একটি ওয়েব সার্ভিস ক্লায়েন্ট তৈরি করতে পারেন যা SOAP ওয়েব সার্ভিসে রিকোয়েস্ট পাঠাবে এবং রেসপন্স গ্রহণ করবে।
HelloWorldClient.java
ক্লাস তৈরি করাpackage com.example.cxf;
import org.apache.cxf.jaxws.JaxWsProxyFactoryBean;
public class HelloWorldClient {
public static void main(String[] args) {
// ক্লায়েন্ট ফ্যাক্টরি তৈরি
JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean();
// ওয়েব সার্ভিসের URL সেট করা
factory.setServiceClass(HelloWorldService.class);
factory.setAddress("http://localhost:9000/hello");
// ওয়েব সার্ভিস ক্লায়েন্ট তৈরি
HelloWorldService client = (HelloWorldService) factory.create();
// সার্ভিস কল করা
String response = client.sayHello("John");
System.out.println(response); // Output: Hello, John!
}
}
এখানে:
JaxWsProxyFactoryBean
ব্যবহার করে ওয়েব সার্ভিস ক্লায়েন্ট তৈরি করা হয়েছে।sayHello()
মেথড কল করে রেসপন্স প্রাপ্তি নিশ্চিত করে।এখন, আপনি SOAP ওয়েব সার্ভিস এবং ক্লায়েন্ট রান করতে প্রস্তুত। দুটি আলাদা টার্মিনাল উইন্ডোতে দুটি কমান্ড চালিয়ে ওয়েব সার্ভিস ও ক্লায়েন্ট রান করতে হবে।
একটি টার্মিনাল উইন্ডোতে ওয়েব সার্ভিস সার্ভার চালান:
mvn exec:java -Dexec.mainClass="com.example.cxf.Server"
এটি ওয়েব সার্ভিস চালু করবে এবং আপনি একটি মেসেজ দেখতে পাবেন:
Server started at http://localhost:9000/hello
আরেকটি টার্মিনাল উইন্ডোতে ওয়েব সার্ভিস ক্লায়েন্ট চালান:
mvn exec:java -Dexec.mainClass="com.example.cxf.HelloWorldClient"
এটি sayHello()
মেথড কল করবে এবং আপনি একটি মেসেজ পাবেন:
Hello, John!
এই টিউটোরিয়ালে Apache CXF দিয়ে SOAP ওয়েব সার্ভিস তৈরি করার প্রক্রিয়া দেখানো হয়েছে। আপনাকে:
@WebService
অ্যানোটেশন ব্যবহার করে।JaxWsServerFactoryBean
ক্লাস ব্যবহার করে ওয়েব সার্ভিস হোস্ট করতে হবে।JaxWsProxyFactoryBean
ব্যবহার করে ওয়েব সার্ভিস ক্লায়েন্ট তৈরি করতে হবে।এটি একটি সিম্পল SOAP ওয়েব সার্ভিস এবং ক্লায়েন্ট তৈরি করার জন্য পর্যাপ্ত গাইডলাইন প্রদান করে।
SOAP এবং WSDL দুটি গুরুত্বপূর্ণ উপাদান যেগুলি ওয়েব সার্ভিস প্রযুক্তির সাথে সম্পর্কিত এবং ওয়েব সার্ভিসের কার্যকারিতা, যোগাযোগ এবং কাঠামো নির্ধারণে সাহায্য করে। এখানে SOAP এবং WSDL এর ভূমিকা এবং ধারণা নিয়ে আলোচনা করা হবে।
SOAP (Simple Object Access Protocol) হলো একটি প্রোটোকল যা অ্যাপ্লিকেশনগুলোর মধ্যে বার্তা আদান-প্রদান করতে ব্যবহৃত হয়। এটি XML (Extensible Markup Language) ভিত্তিক এবং ওয়েব সার্ভিসের মধ্যে তথ্য এক্সচেঞ্জের জন্য একটি স্ট্যান্ডার্ড পদ্ধতি প্রদান করে। SOAP একটি XML কাঠামো ব্যবহার করে এবং HTTP, SMTP, TCP ইত্যাদি প্রোটোকল মাধ্যমে কাজ করতে পারে।
SOAP এর প্রধান ভূমিকা হল:
SOAP বার্তা একটি নির্দিষ্ট কাঠামো অনুসরণ করে, যা সাধারণত তিনটি প্রধান অংশে বিভক্ত:
WSDL (Web Services Description Language) একটি XML ভিত্তিক ভাষা যা ওয়েব সার্ভিসের গঠন, কার্যকলাপ এবং এক্সপোজড মেথডগুলো বর্ণনা করে। এটি একটি কন্ট্র্যাক্টের মতো কাজ করে, যা ক্লায়েন্ট এবং সার্ভারের মধ্যে যোগাযোগের বিস্তারিত নির্দেশিকা প্রদান করে।
WSDL এর প্রধান ভূমিকা হল:
WSDL ফাইলের সাধারণ কাঠামো বেশিরভাগ ক্ষেত্রেই নিম্নলিখিত অংশগুলো ধারণ করে:
নিচে একটি সাধারণ WSDL ফাইলের উদাহরণ দেওয়া হল:
<definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
name="HelloWorldService"
targetNamespace="http://example.com/helloworld">
<!-- Types definition -->
<types>
<xsd:schema targetNamespace="http://example.com/helloworld">
<xsd:element name="sayHello" type="xsd:string"/>
</xsd:schema>
</types>
<!-- Message definition -->
<message name="SayHelloRequest">
<part name="name" type="xsd:string"/>
</message>
<message name="SayHelloResponse">
<part name="greeting" type="xsd:string"/>
</message>
<!-- PortType definition -->
<portType name="HelloWorldPortType">
<operation name="sayHello">
<input message="tns:SayHelloRequest"/>
<output message="tns:SayHelloResponse"/>
</operation>
</portType>
<!-- Binding definition -->
<binding name="HelloWorldBinding" type="tns:HelloWorldPortType">
<soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="sayHello">
<soap:operation soapAction="sayHello"/>
<input>
<soap:body use="encoded" namespace="http://example.com/helloworld"/>
</input>
<output>
<soap:body use="encoded" namespace="http://example.com/helloworld"/>
</output>
</operation>
</binding>
<!-- Service definition -->
<service name="HelloWorldService">
<port name="HelloWorldPort" binding="tns:HelloWorldBinding">
<soap:address location="http://localhost:8080/helloworld"/>
</port>
</service>
</definitions>
এই WSDL ফাইলটি একটি SOAP ওয়েব সার্ভিসের সমস্ত তথ্য ধারণ করে, যেমন সার্ভিসের URL, পোর্ট, মেথড এবং ইনপুট/আউটপুট ডেটা টাইপ।
SOAP এবং WSDL একসাথে ব্যবহৃত হয় ওয়েব সার্ভিস যোগাযোগে, যেখানে WSDL ওয়েব সার্ভিসের গঠন নির্ধারণ করে এবং SOAP সেই গঠনের সাথে যোগাযোগের মাধ্যম সরবরাহ করে।
Apache CXF ব্যবহার করে একটি SOAP ওয়েব সার্ভিস তৈরি করা খুবই সহজ। এখানে একটি ধাপে ধাপে গাইড দেওয়া হলো, যাতে আপনি সহজে প্রথম SOAP ওয়েব সার্ভিস তৈরি করতে পারেন।
প্রথমে, Maven ব্যবহার করে একটি নতুন Java প্রজেক্ট তৈরি করুন। আপনি archetype:generate
কমান্ড ব্যবহার করে একটি নতুন Maven প্রজেক্ট তৈরি করতে পারেন।
mvn archetype:generate -DgroupId=com.example.cxf -DartifactId=cxf-hello-world -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
এটি একটি নতুন Maven প্রজেক্ট তৈরি করবে।
pom.xml
ফাইল কনফিগারেশনএখন, আপনার pom.xml
ফাইলে Apache CXF এর ডিপেনডেন্সি যোগ করুন। নিচে একটি সাধারণ pom.xml
কনফিগারেশন দেওয়া হল:
<dependencies>
<!-- Apache CXF Dependency for SOAP Web Services -->
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-frontend-jaxws</artifactId>
<version>3.5.0</version>
</dependency>
<!-- JAXB Dependency (for XML binding) -->
<dependency>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
<version>2.3.1</version>
</dependency>
</dependencies>
এটি SOAP ওয়েব সার্ভিসের জন্য Apache CXF এর মূল ডিপেনডেন্সি যোগ করবে।
এখন, আপনি একটি সাধারণ SOAP ওয়েব সার্ভিস তৈরি করতে পারেন। নিচে একটি উদাহরণ দেওয়া হলো:
HelloWorldService
ক্লাস তৈরি করাHelloWorldService
ক্লাসটি একটি SOAP ওয়েব সার্ভিস তৈরি করবে যা একটি sayHello
মেথড প্রদান করবে। এই মেথডটি একটি নাম ইনপুট হিসেবে নেবে এবং একটি স্বাগত বার্তা ফিরিয়ে দেবে।
package com.example.cxf;
import javax.jws.WebMethod;
import javax.jws.WebService;
@WebService
public class HelloWorldService {
@WebMethod
public String sayHello(String name) {
return "Hello, " + name + "!";
}
}
এখন, আপনি এই ওয়েব সার্ভিসটি Apache CXF সার্ভারে হোস্ট করতে পারবেন। এর জন্য একটি সার্ভার ক্লাস তৈরি করুন।
package com.example.cxf;
import org.apache.cxf.jaxws.JaxWsServerFactoryBean;
public class Server {
public static void main(String[] args) {
// Create the server factory
JaxWsServerFactoryBean factory = new JaxWsServerFactoryBean();
// Set the service class and address
factory.setServiceClass(HelloWorldService.class);
factory.setAddress("http://localhost:8080/hello");
// Create and publish the service
factory.create();
System.out.println("Service started at: http://localhost:8080/hello");
}
}
JaxWsServerFactoryBean
ব্যবহার করে সার্ভার তৈরি করা হচ্ছে।setServiceClass()
দিয়ে ওয়েব সার্ভিস ক্লাসটি সেট করা হচ্ছে।setAddress()
দিয়ে ওয়েব সার্ভিসের URL ঠিকানা নির্ধারণ করা হচ্ছে, যেখানে এটি শোনা যাবে।এটি ওয়েব সার্ভিসটি http://localhost:8080/hello
ঠিকানায় চালু করবে।
আপনি এখন আপনার SOAP ওয়েব সার্ভিসটি চালু করতে পারবেন। নিচে দেওয়া হয়েছে কীভাবে এটি চালাতে হবে:
প্রথমে, আপনার প্রজেক্টটি Maven দিয়ে বিল্ড করুন:
mvn clean install
তারপর, সার্ভার ক্লাস চালান:
java -cp target/cxf-hello-world-1.0-SNAPSHOT.jar com.example.cxf.Server
এটি আপনার SOAP ওয়েব সার্ভিসটি শুরু করবে এবং সার্ভিসটি http://localhost:8080/hello
ঠিকানায় চলবে।
SOAP ওয়েব সার্ভিসটি পরীক্ষা করার জন্য আপনি SOAP UI
বা অন্য কোনো SOAP ক্লায়েন্ট টুল ব্যবহার করতে পারেন। এখানে একটি সাধারণ টেস্টের পদ্ধতি দেওয়া হলো:
http://localhost:8080/hello?wsdl
sayHello
মেথডটি কল করুন।আপনি যদি এই ধাপগুলি অনুসরণ করেন, তবে আপনি সফলভাবে একটি SOAP ওয়েব সার্ভিস তৈরি এবং পরীক্ষা করতে পারবেন।
এটি ছিল আপনার প্রথম SOAP ওয়েব সার্ভিস তৈরি করার প্রক্রিয়া। Apache CXF ব্যবহার করে SOAP ওয়েব সার্ভিস তৈরি করা খুবই শক্তিশালী এবং সহজ পদ্ধতি।
WSDL (Web Services Description Language) ফাইল একটি XML ডকুমেন্ট যা ওয়েব সার্ভিসের API এর বিস্তারিত বিবরণ প্রদান করে, যেমন অপারেশন, ইনপুট এবং আউটপুট প্যারামিটার, সার্ভিসের এন্ডপয়েন্ট ইত্যাদি। Apache CXF ব্যবহার করে ওয়েব সার্ভিস তৈরি করার সময়, আপনি সহজেই WSDL ফাইল জেনারেট করতে পারবেন। নিচে WSDL ফাইল জেনারেট করার প্রক্রিয়া বিস্তারিতভাবে বর্ণনা করা হয়েছে।
WSDL ফাইল জেনারেট করার জন্য Apache CXF একটি Maven প্লাগইন সরবরাহ করে, যার মাধ্যমে আপনি WSDL থেকে Java কোড জেনারেট করতে পারেন এবং বিপরীতভাবে Java কোড থেকে WSDL ফাইল জেনারেট করতে পারেন।
pom.xml
এ CXF Maven Plugin যোগ করাপ্রথমে, আপনার pom.xml
ফাইলে নিচের Maven প্লাগইন যোগ করতে হবে। এটি WSDL ফাইল জেনারেট করার জন্য Apache CXF এর cxf-codegen-plugin
ব্যবহার করবে।
<build>
<plugins>
<plugin>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-codegen-plugin</artifactId>
<version>3.5.0</version>
<executions>
<execution>
<goals>
<goal>wsdl2java</goal>
</goals>
<configuration>
<wsdlOptions>
<wsdlOption>
<wsdl>src/main/resources/hello-world.wsdl</wsdl> <!-- WSDL File Path -->
<packageName>com.example.cxf.client</packageName> <!-- Generated Java Package -->
</wsdlOption>
</wsdlOptions>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
এখানে:
wsdl
: WSDL ফাইলের পাথ। আপনি যদি ওয়েব সার্ভিসের জন্য একটি WSDL ফাইল তৈরি করতে চান, তবে এটি নির্দেশ করবে।packageName
: যেখানে আপনি Java ক্লাস ফাইলগুলি জেনারেট করতে চান, যেমন com.example.cxf.client
।এখন, Maven কমান্ড রান করুন যাতে WSDL থেকে Java ক্লাস ফাইল জেনারেট করা হয়:
mvn clean generate-sources
এটি WSDL ফাইল থেকে Java ক্লাসগুলি জেনারেট করবে এবং target/generated-sources/cxf
ডিরেক্টরিতে সেগুলি রাখবে।
আপনি যদি Java কোড থেকে WSDL ফাইল জেনারেট করতে চান, Apache CXF এর মাধ্যমে খুব সহজেই এটি করা সম্ভব। এর জন্য wsdl2java
কমান্ডের ব্যবহার করা হয়।
@WebService
অ্যানোটেটেড ক্লাস তৈরি করুন, যেমন:package com.example.cxf;
import javax.jws.WebService;
import javax.jws.WebMethod;
@WebService
public class HelloWorldService {
@WebMethod
public String sayHello(String name) {
return "Hello, " + name + "!";
}
}
package com.example.cxf;
import org.apache.cxf.jaxws.JaxWsServerFactoryBean;
public class Server {
public static void main(String[] args) {
JaxWsServerFactoryBean factory = new JaxWsServerFactoryBean();
factory.setServiceClass(HelloWorldService.class);
factory.setAddress("http://localhost:8080/hello");
factory.create();
}
}
wsdl2java
প্লাগইন ব্যবহার করবেন।Apache CXF এর মাধ্যমে Java ওয়েব সার্ভিস ক্লাস থেকে WSDL ফাইল জেনারেট করার জন্য, আপনি wsdl2java
প্লাগইন ব্যবহার করতে পারেন। নিচে একটি উদাহরণ দেখানো হল:
mvn clean generate-sources
এটি Java কোড থেকে একটি WSDL ফাইল তৈরি করবে এবং target/generated-sources/cxf
ডিরেক্টরিতে WSDL ফাইলটি রাখবে।
এখন যে WSDL ফাইলটি তৈরি হয়েছে, সেটি অন্যান্য ক্লায়েন্ট অ্যাপ্লিকেশন দ্বারা ওয়েব সার্ভিসের জন্য ব্যবহৃত হতে পারে। ক্লায়েন্ট অ্যাপ্লিকেশন থেকে WSDL ফাইলের মাধ্যমে আপনি সরাসরি সার্ভিস কল করতে পারবেন।
আপনি যদি WSDL ফাইল ব্যবহার করে ওয়েব সার্ভিস ক্লায়েন্ট তৈরি করতে চান, তবে wsdl2java
টুল ব্যবহার করে Java ক্লাস জেনারেট করতে হবে এবং তারপর সেই ক্লাস ব্যবহার করে সার্ভিস কল করতে পারবেন।
mvn clean generate-sources
এটি HelloWorldService
ক্লাসসহ সমস্ত প্রয়োজনীয় Java ক্লাস জেনারেট করবে, যা আপনি ওয়েব সার্ভিসে কল করতে ব্যবহার করতে পারবেন।
Apache CXF এর মাধ্যমে WSDL ফাইল জেনারেট করা খুবই সহজ। আপনি Maven ব্যবহার করে cxf-codegen-plugin
এর মাধ্যমে WSDL থেকে Java কোড জেনারেট করতে পারেন অথবা Java ক্লাস থেকে WSDL ফাইল তৈরি করতে পারেন। এই প্রক্রিয়াগুলি ওয়েব সার্ভিস ডেভেলপমেন্টে দ্রুততা এবং কার্যকারিতা বৃদ্ধি করতে সহায়ক।
SOAP ওয়েব সার্ভিস তৈরি করার সময়, ওয়েব সার্ভিসের endpoint এবং binding নির্ধারণ করা অত্যন্ত গুরুত্বপূর্ণ। Endpoint একটি নির্দিষ্ট URL যেখানে SOAP ওয়েব সার্ভিস অ্যাক্সেস করা যায়, এবং binding হল SOAP প্রোটোকলের সাথে সম্পর্কিত যোগাযোগ পদ্ধতি। এই টিউটোরিয়ালে আমরা SOAP ওয়েব সার্ভিসের জন্য endpoint এবং binding কিভাবে তৈরি করা যায়, তা বিস্তারিতভাবে আলোচনা করব।
SOAP ওয়েব সার্ভিসে Endpoint হল সেই URL যেখানে ক্লায়েন্টরা সার্ভিসের সাথে যোগাযোগ করতে পারে। এটি ওয়েব সার্ভিসের কার্যক্ষমতা এবং অবস্থানকে চিহ্নিত করে। Apache CXF-এ, Endpoint তৈরি করতে সাধারণত JAX-WS
(Java API for XML Web Services) ব্যবহার করা হয়।
ধরা যাক আমাদের একটি HelloWorldService
ওয়েব সার্ভিস ক্লাস রয়েছে যা SOAP ওয়েব সার্ভিসের মাধ্যমে "Hello, !" বার্তা রিটার্ন করবে।
package com.example.cxf;
import javax.jws.WebMethod;
import javax.jws.WebService;
@WebService
public class HelloWorldService {
@WebMethod
public String sayHello(String name) {
return "Hello, " + name + "!";
}
}
এখানে, HelloWorldService
ক্লাস একটি ওয়েব সার্ভিস যা একটি sayHello()
মেথড প্রদানে সক্ষম। এই মেথডটি SOAP ওয়েব সার্ভিসের মাধ্যমে "Hello, !" বার্তা প্রদান করবে।
Apache CXF এর মাধ্যমে এই ওয়েব সার্ভিস হোস্ট করতে, আপনি একটি JaxWsServerFactoryBean
ব্যবহার করতে পারেন যা ওয়েব সার্ভিসটি একটি endpoint-এ মাপ করে।
package com.example.cxf;
import org.apache.cxf.jaxws.JaxWsServerFactoryBean;
public class Server {
public static void main(String[] args) {
// Create a server factory for the web service
JaxWsServerFactoryBean factory = new JaxWsServerFactoryBean();
// Set the service class and the endpoint URL
factory.setServiceClass(HelloWorldService.class);
factory.setAddress("http://localhost:8080/helloWorldService");
// Create and publish the service at the specified endpoint
factory.create();
System.out.println("Web service is hosted at http://localhost:8080/helloWorldService");
}
}
এখানে, আমরা setAddress()
মেথড দিয়ে endpoint URL প্রদান করেছি, যেখানে ওয়েব সার্ভিসটি হোস্ট হবে। এটি SOAP ওয়েব সার্ভিসের ক্লায়েন্টদের জন্য একটি নির্দিষ্ট URL প্রদান করে, যার মাধ্যমে তারা সার্ভিসটি অ্যাক্সেস করতে পারবে।
Binding হল একটি SOAP প্রোটোকলের প্রক্রিয়া যা সার্ভিসের সাথে ক্লায়েন্টের যোগাযোগ নির্ধারণ করে। এটি সংজ্ঞায়িত করে কিভাবে SOAP বার্তা ট্রান্সফার হবে (যেমন, HTTP, JMS, ইত্যাদি) এবং SOAP বার্তাটি কিভাবে তৈরি হবে।
Apache CXF ব্যবহার করে SOAP ওয়েব সার্ভিসের জন্য binding তৈরি করতে আমরা JAX-WS
বা JAX-RS
ইন্টারফেস ব্যবহার করতে পারি। সাধারণত, SOAPBinding
ব্যবহার করা হয়।
Apache CXF-এ SOAP এর জন্য বিভিন্ন ধরনের binding প্রকার রয়েছে, এর মধ্যে প্রধান দুটি হল:
Document-style binding ব্যবহার করলে, SOAP বার্তাটি একটি XML ডকুমেন্ট হিসেবে থাকে, যেখানে সমস্ত তথ্য SOAP Envelope, Header এবং Body তে থাকে।
import javax.jws.WebService;
@WebService
public class HelloWorldService {
public String sayHello(String name) {
return "Hello, " + name + "!";
}
}
এখানে @WebService
এনোটেশন ব্যবহার করে Document-style SOAP Binding তৈরি করা হয়েছে।
RPC-style binding ব্যবহার করলে SOAP বার্তা ফাংশন কলের মতো থাকে এবং সঠিকভাবে সংজ্ঞায়িত আর্গুমেন্ট সহ SOAP মেসেজ ট্রান্সফার হয়।
import javax.jws.WebService;
@WebService(endpointInterface = "com.example.cxf.HelloWorldService")
public class HelloWorldServiceImpl implements HelloWorldService {
@Override
public String sayHello(String name) {
return "Hello, " + name + "!";
}
}
এখানে, @WebService
এনোটেশনটি SOAP RPC-style Binding নির্ধারণ করছে, যা সার্ভিসের কাজের প্রক্রিয়া এবং ফাংশনালিটি স্পষ্ট করে।
আপনার ওয়েব সার্ভিসের চাহিদা অনুযায়ী আপনি document
বা rpc
স্টাইল নির্বাচন করতে পারেন। সাধারণত, document-style অধিক ব্যবহৃত হয় কারণ এটি আরো ফ্লেক্সিবল এবং বড় ডেটা ট্রান্সফারের জন্য উপযুক্ত।
Read more